using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace LF.Domain.Services
{
    /// <summary>
    /// AI服务接口
    /// </summary>
    public interface IAIService : IDomainService
    {
        /// <summary>
        /// 根据知识库生成文本向量嵌入
        /// </summary>
        /// <param name="knowledgeBaseId">知识库ID</param>
        /// <param name="fileId">文件ID，如果为null则处理整个知识库</param>
        /// <returns>是否成功</returns>
        Task<bool> GenerateEmbeddingsAsync(Guid knowledgeBaseId, Guid? fileId = null);

        /// <summary>
        /// 分析文档并生成向量嵌入
        /// </summary>
        /// <param name="fileMD5">文件MD5</param>
        /// <param name="filename">文件名称</param>
        /// <param name="sliceType">切片方式：0、固定长度 1、QA问答 2、段落</param>
        /// <param name="fixedLength">固定长度大小，当SliceType=0时使用</param>
        /// <returns>生成的文档块数量</returns>
        Task<int> ProcessDocumentAsync(string fileMD5, string filename, int sliceType, int? fixedLength = null);
        
       
    }
} 